<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <script src="../js/vue.js"></script>
</head>

<body>

  <!-- 
    收集表单数据：
        若：<input type="text"/>， 则v-model收集的是value值， 用户输入的就是value值。
        若<input type="radio"/>， 则v-model收集的是value值， 且要给标签配置value值。
        若：<input type="checkbox"/>
            1.没有配置input的value属性， 那么收集的就是checked(勾选or未勾选， 是布尔值)
            2.配置input的value属性：
                (1) v-model的初始值是非数组， 那么收集的就是checked(勾选or未勾选， 是布尔值)
                (2) v-model的初始值是数组， 那么收集的的就是value组成的数组
        备注：v-model的三个修饰符：
            lazy：失去焦点再收集数据
            number：输入字符串转为有效的数字
            trim：输入首尾空格过滤
   -->

  <div id="root">
    <form @submit.prevent="demo">
      账号：<input type="text" v-model.trim="userInfo.account"><br>
      密码：<input type="password" v-model="userInfo.password"> <br>
      性别：
      男<input type="radio" name="sex" v-model="userInfo.sex" value="male">
      女<input type="radio" name="sex" v-model="userInfo.sex" value="female"> <br>
      年龄：<input type="number" v-model.number="userInfo.age">
      <br>
      爱好：
      学习<input type="checkbox" v-model="userInfo.hobby" value="study">
      打游戏<input type="checkbox" v-model="userInfo.hobby" value="game">
      吃饭<input type="checkbox" v-model="userInfo.hobby" value="eat">
      <br>
      所属校区：
      <select v-model="userInfo.city">
        <option value="">请选择校区</option>
        <option value="BJ">北京</option>
        <option value="SH">上海</option>
        <option value="SZ">深圳</option>
        <option value="WH">武汉</option>
      </select>
      <br>
      其他信息：
      <textarea v-model.lazy="userInfo.other"></textarea>
      <br>
      <input type="checkbox" v-model="userInfo.isAgree"> 阅读并接收<a href="https://www.baidu.com">《用户协议》</a>
      <br>
      <button>提交</button>
    </form>
  </div>
  <script>
    Vue.config.productionTip = false
    new Vue({
      el: '#root',
      data: {
        userInfo: {
          account: '',
          password: '',
          age: 22,
          sex: '',
          hobby: [],
          city: '',
          other: '',
          isAgree: false
        }
      },
      methods: {
        demo() {
          console.log(JSON.stringify(this.userInfo))
        }
      },
    })
  </script>
</body>

</html>